#ifndef CAMERA_H
#define CAMERA_H

#include <GL/glew.h>
#include <GL/glfw.h>
#include <string.h>
#include <iostream>
#include <map>
using namespace std;
/*#include <map>
  #include "string"*/
#include "Vector3.h"
//#include "ICamera.h"

namespace glow
{
  class Camera //: public ICamera<map<string, char> >
 {

  private :

    Vector3d _position;
    Vector3d _angle;
    Vector3d _target;


  public :

    Camera();
    Camera(Vector3d pos, Vector3d ang, Vector3d targ);

    Vector3d getPosition();
    Vector3d getAngle();
    Vector3d getTarget();

    void setPosition(Vector3d pos);
    void setAngle(Vector3d ang);
    void setTarget(Vector3d targ);

    //void getEvent();
    void reset();
    void translate(Vector3d v);
    void rotate(Vector3d v);
    void target(Vector3d v);
    void lookAt(Vector3d pos, Vector3d ang, Vector3d targ);
    void render();
    ~Camera();

  };
}


#endif
